package com.cfp4cloud.cfp.knowledge.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cfp4cloud.cfp.common.core.util.R;
import com.cfp4cloud.cfp.knowledge.entity.AiModelEntity;

import java.util.ArrayList;

/**
 * AI模型管理服务接口
 * <p>
 * 统一管理系统中的AI模型配置，包括模型的注册、更新、删除 和同步等操作，支持多厂商、多模型的管理。
 *
 * @author chenda
 * @date 2024/06/01
 */
public interface AiModelService extends IService<AiModelEntity> {

	/**
	 * 更新AI模型配置
	 * <p>
	 * 更新已注册模型的配置信息，包括API密钥、端点地址、 参数设置等，更新后立即生效。
	 * @param aiModel AI模型实体，包含更新的配置信息
	 * @return 操作结果，包含成功状态和消息
	 */
	R updateModel(AiModelEntity aiModel);

	/**
	 * 批量删除AI模型
	 * <p>
	 * 根据模型ID列表批量删除模型配置，删除前会检查 模型是否正在使用，避免影响业务。
	 * @param list 待删除的模型ID列表
	 * @return 操作结果，包含成功状态和删除数量
	 */
	R removeModel(ArrayList<Long> list);

	/**
	 * 保存新的AI模型
	 * <p>
	 * 注册新的AI模型到系统中，包括模型基本信息、 认证配置、能力参数等。
	 * @param aiModel AI模型实体，包含完整的模型配置
	 * @return 操作结果，包含保存的模型信息
	 */
	R saveModel(AiModelEntity aiModel);

	/**
	 * 同步AI模型列表
	 * <p>
	 * 从各AI服务提供商同步最新的模型列表， 更新模型能力、价格、限制等信息。
	 * @return 同步结果，包含更新的模型数量和状态
	 */
	R syncModel();

}
